package qc.common.core.constants;

import qc.common.core.enums.qms.QmsPointDataQualityEnum;

/**
 * QMS公用静态定义
 *
 * @author QuCheng Tech
 * @since 2025/9/23
 */
public interface QmsConstant {
    /**
     * 点号数据认定为有效数据的开始数据质量，≥该质量的数据均当做时有效数据
     * 有效数据参与系统的计算，无效数据不参与系统的计算
     */
    QmsPointDataQualityEnum POINT_DATA_VALID_QUALITY_FROM = QmsPointDataQualityEnum.FILLING;

    /**
     * 实时点号数据（包含实时和分钟时段类型）最大往后（往未来时间）分钟数，点号数据保存时如果数据时标超过当前时间n分钟判定为采集时标错误
     * 小时及以上时段数据不能超过当前时间所在时段，时段未结束可以计算和保存数据，时段未开始不可以进行计算和保存数据
     */
    int REAL_POINT_DATA_MAX_FORWARD_MINUTES = 30;

    /**
     * 日及以下时段最大往前（往过去时间）天数，同时作为定时计算默认往前的最大天数、点号数据保存最大允许往前的天数
     * 点号定时计算：在系统没有进行点号定时计算的记录时默认从n天前计算至当前时间/时段
     * 点号数据保存：不管点号是否为未来点号，系统自动计算的（非人工触发计算或操作）点号数据只保存从n天前至当前时间/时段的数据
     */
    int NO_MORE_THAN_DAY_PERIOD_MAX_BACKWARD_DAYS = 3;

    /**
     * 日以上时段的最大往前（往过去时间）时段数，同时作为定时计算默认往前的最大时段数、点号数据保存最大允许往前的时段数
     * 点号定时计算：在系统没有进行点号定时计算的记录时默认计算前n个时段至当前时间/时段
     * 点号数据保存：不管点号是否为未来点号，系统自动计算的（非人工触发计算或操作）点好数据值保存从n个时段前值当前时段的数据
     */
    int MORE_THAN_DAY_PERIOD_MAX_BACKWARD_PERIODS = 3;

    /**
     * 年时段点的最大往前（往过去时间）时段数（年数），
     * 点号定时计算：在系统没有进行点号定时计算的记录时默认计算前n个年至当前年份的前一年
     * 点号数据保存：只保存n年前至当前年份的数据
     */
    int YEAR_PERIOD_MAX_BACKWARD_PERIODS = 1;

    //站点与站点之间的关联关系：上下级通过站点和关联站点设置，主备或冗余站点关系通过扩展标记进行识别
    //站点与站点之间才有主备或冗余关系，站点与点号之间不存在主备或冗余关系
    //站点与站点之间也可以通过扩展标记来识别关联站点作为站点的坝上、尾水、坝址以上区间
    //站点与点号之间仅存在通过扩展标记识别点点号作为站点的坝上水位、尾水水位、入库流量、出库流量

    /**
     * 站点之间为主备关系的扩展标记字符串
     */
    String STATION_STANDBY_RELATION_EXT_STRING = "standby";
    /**
     * 站点之间为冗余（多通道冗余）关系的扩展标记字符串
     */
    String STATION_MULTI_RELATION_EXT_STRING = "multi";
}
